<?php
set_include_path(get_include_path() . PATH_SEPARATOR . "/Kioskos");
set_include_path(get_include_path() . PATH_SEPARATOR . "..");
set_include_path(get_include_path() . PATH_SEPARATOR . "../..");
require_once("Interfaces/Controllable.php");
require_once("DAO/MySQL.php");
require_once("BO/Encuesta.php");
$_DEBUG = true;
class  Encuestas implements Controllable, Iterator{
public $_DEBUG = false;

    public $encuestas ;
    public $index;
    public function __construct() {
       if($this->_DEBUG){
            echo "Construct Encuestas";
        }
        $this->index = 0;
        $this->encuestas = array();
    }

    function asControl($controlTag , $selected = false){
        $retVal = "";
        $selected = $this->current();
        //echo "<br/>".count($this->tiposEncuestas) . " tipos<br/>";
        for( $i = 0 ; $i < count($this->encuestas) ; $i++ ){
            $retVal .= $this->encuestas[$i]->asOption(( $this->encuestas[$i] == $selected )) . "\n";
        }
        $salt = rand();
        $ctlCode = "<$controlTag name='Encuestas_idEncuestas' id='Encuestas_idEncuestas$salt'>".$retVal."</$controlTag>";
        $ctlCode .= "<a href='javascript:nuevaEncuesta();'>nuevo</a>";
        $ctlCode .= "&nbsp;<a href='javascript:cargarComboEncuestas(\"Encuestas_idEncuestas$salt\");'>refrescar</a>";
        $ctlCode .= "&nbsp;<a href='javascript:alimentarEncuesta(\"Encuestas_idEncuestas$salt\");'>Modificar encuesta seleccionada</a>";
        $ctlCode .= "&nbsp;<a href='javascript:eliminarEncuesta(\"Encuestas_idEncuestas$salt\");'>Eliminar encuesta seleccionada</a>";
        return $ctlCode;
    }
    public function asSelect(){
        return $this->asControl("SELECT");
    }
    public function current (  ){
        if(count($this->encuestas) > 0 )
        return $this->encuestas[$this->index];
        return null;
    }
    public function key (  ){
        return $this->index;
    }
    public function next (  ){
        ++$this->index;
    }
    public function rewind (  ){
        $this->index = 0;
    }
    public function valid (  ){
        return isset($this->encuestas[$this->index]);
    }
    public function loadAllFromDB($activas , $vigentes , $TiposEncuestas_idTiposEncuestas){
        $table = null;
        if($activas == true  && $vigentes == true ){
            $table = getTable("CALL ObtenerEncuestasActivas($TiposEncuestas_idTiposEncuestas);");    
        }
        if(is_null($activas) == true  && is_null($vigentes) == true ){
            $table = getTable("SELECT idEncuestas , Titulo , idTiposEncuestas, TipoEncuesta , Inicio , Fin , Introduccion, NotaFinal".
" FROM Encuestas E ".
" LEFT JOIN TiposEncuestas TE ON E.TiposEncuestas_idTiposEncuestas = TE.idTiposEncuestas ".
" LEFT JOIN PeriodosEncuestas PE ON PE.Encuestas_idEncuestas = E.idEncuestas");    
        }
        for( $i = 0 ; $i < count( $table ) ; $i++ ){
            $row = $table[ $i ];
            $encuesta = new Encuesta( $row["idEncuestas"] , $row["Titulo"] , $row["Introduccion"], $row["NotaFinal"], $row["idTiposEncuestas"] );
            $this->encuestas[] = $encuesta;
        }
        
    }
    public function asOptions(){
        $retVal = "";
        $selected = $this->current();
        for( $i = 0 ; $i < count($this->encuestas) ; $i++ ){
            $retVal .= $this->encuestas[$i]->asOption(( $this->encuestas[$i] == $selected )) . "\n";
        }
        return $retVal;
    }

}
//////////////////  AJAX  //////////////////////
if( isset($_GET["refresh"]) ){
    if( $_GET[ "refresh" ] == "all" ){
        $tE = new Encuestas();
        $tE->loadAllFromDB(null , null,1);
//        var_dump($tE);
        echo $tE->asOptions();
    }
}
?>